Functional API দিয়ে মডেল Training এবং Evaluation

Machine Learning - কেরাস ডিপ লার্নিং (Deep Learning with Keras) - Functional API দিয়ে Complex মডেল তৈরি
272

Functional API Keras এর একটি শক্তিশালী ফিচার, যা জটিল এবং মাল্টি-ইনপুট, মাল্টি-আউটপুট মডেল তৈরি করতে ব্যবহৃত হয়। Functional API ব্যবহার করে মডেল তৈরির সময় আমরা একাধিক লেয়ার বা আউটপুটকে একটি একক কার্যকরী গ্রাফের মধ্যে সংযুক্ত করতে পারি, যা সহজতর সিকোয়েন্সিয়াল মডেল তৈরি করার চেয়ে অনেক বেশি নমনীয়।

এখানে Functional API ব্যবহার করে মডেল ট্রেনিং এবং ইভ্যালুয়েশন পদ্ধতির বিস্তারিত আলোচনা করা হল।

Functional API দিয়ে মডেল Training

1. মডেল আর্কিটেকচার ডিজাইন করা

Functional API ব্যবহার করার জন্য প্রথমে মডেলের জন্য ইনপুট লেয়ার এবং লেয়ারগুলির মধ্যে সংযোগ তৈরি করতে হবে। নিচে একটি সাধারণ কনভোলিউশনাল নিউরাল নেটওয়ার্ক (CNN) তৈরি করার উদাহরণ দেওয়া হলো:

from keras.models import Model
from keras.layers import Input, Dense, Flatten

# ইনপুট লেয়ার
input_layer = Input(shape=(64, 64, 3))  # 64x64 চিত্র, 3 চ্যানেল (RGB)

# প্রথম লেয়ার: Dense layer
x = Flatten()(input_layer)
x = Dense(64, activation='relu')(x)

# আউটপুট লেয়ার
output_layer = Dense(10, activation='softmax')(x)  # 10 ক্লাসের জন্য আউটপুট

# মডেল তৈরি করা
model = Model(inputs=input_layer, outputs=output_layer)

এখানে, Input লেয়ারকে অন্যান্য লেয়ারের সাথে সংযুক্ত করা হয়েছে, এবং একটি আউটপুট লেয়ার দেওয়া হয়েছে।

2. মডেল কম্পাইল করা

মডেল কম্পাইল করার জন্য আমরা loss function, optimizer, এবং metrics সিলেক্ট করি:

# মডেল কম্পাইল করা
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

এখানে, Adam অপটিমাইজার, categorical crossentropy লস ফাংশন, এবং accuracy মেট্রিক ব্যবহার করা হয়েছে।

3. মডেল ট্রেনিং

এখন, মডেলকে ট্রেন করার জন্য প্রশিক্ষণ ডেটা, ভ্যালিডেশন ডেটা এবং অন্যান্য প্যারামিটার সরবরাহ করতে হবে। ট্রেনিং চলাকালীন epochs এবং batch size নির্ধারণ করতে হবে:

# মডেল প্রশিক্ষণ
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val))

এখানে, x_train এবং y_train হল প্রশিক্ষণ ডেটা এবং x_val, y_val হল ভ্যালিডেশন ডেটা। epochs এর মান ১০ এবং batch_size ৩২ রাখা হয়েছে।

Functional API দিয়ে মডেল Evaluation

মডেল প্রশিক্ষিত হলে, এটি মূল্যায়ন করার জন্য evaluate() মেথড ব্যবহার করা হয়, যা মডেলটির test dataset এর ওপর পারফরম্যান্স দেখায়।

1. মডেল ইভ্যালুয়েশন

# মডেল মূল্যায়ন
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Loss: {loss}")
print(f"Test Accuracy: {accuracy}")

এখানে x_test এবং y_test হল টেস্ট ডেটাসেট, এবং এই মেথডটি মডেলের loss এবং accuracy প্রিন্ট করবে।

2. Confusion Matrix এবং Classification Report

শ্রেণীবিভাগ সমস্যা (classification problem) হলে, confusion matrix এবং classification report ব্যবহার করা যেতে পারে যাতে আরও বিস্তারিত পারফরম্যান্স মেট্রিক্স পাওয়া যায়।

from sklearn.metrics import confusion_matrix, classification_report
import numpy as np

# মডেল পূর্বাভাস করা
y_pred = model.predict(x_test)

# কনফিউশন ম্যাট্রিক্স তৈরি করা
y_pred_classes = np.argmax(y_pred, axis=1)
y_true_classes = np.argmax(y_test, axis=1)

cm = confusion_matrix(y_true_classes, y_pred_classes)
print("Confusion Matrix:\n", cm)

# ক্লাসিফিকেশন রিপোর্ট
print("Classification Report:\n", classification_report(y_true_classes, y_pred_classes))

এখানে y_pred মডেল থেকে প্রাপ্ত পূর্বাভাস এবং y_test হল আসল টেস্ট লেবেল। confusion_matrix এবং classification_report ব্যবহারের মাধ্যমে বিস্তারিত তথ্য পাওয়া যায়।

3. Plotting Loss and Accuracy Curves

মডেল ট্রেনিংয়ের পর, loss এবং accuracy এর গ্রাফ প্লট করা যেতে পারে, যা মডেলের কার্যকারিতা এবং উন্নতির স্তর দেখায়:

import matplotlib.pyplot as plt

# মডেল ট্রেনিংয়ের ইতিহাস (history) প্রাপ্ত করা
history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val))

# loss এবং accuracy গ্রাফ প্লট করা
plt.figure(figsize=(12, 4))

# Training loss
plt.subplot(1, 2, 1)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Loss')
plt.legend()

# Training accuracy
plt.subplot(1, 2, 2)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Accuracy')
plt.legend()

plt.show()

এটি training loss, validation loss, training accuracy, এবং validation accuracy এর গ্রাফ দেখাবে।

সারাংশ

  • Functional API Keras-এ একটি শক্তিশালী পদ্ধতি, যা মডেল ডিজাইন করার জন্য নমনীয়তা প্রদান করে এবং একাধিক ইনপুট বা আউটপুট লেয়ারের সংযোগ সম্ভব করে।
  • Training: মডেল প্রশিক্ষণের জন্য fit() মেথড ব্যবহার করা হয়, যেখানে ইনপুট, আউটপুট, epochs, এবং batch size সঠিকভাবে সেট করা হয়।
  • Evaluation: মডেল মূল্যায়ন করতে evaluate() মেথড ব্যবহার করা হয় এবং Confusion Matrix, classification report, এবং accuracy/loss plots এর মাধ্যমে মডেলের কর্মক্ষমতা বিশ্লেষণ করা হয়।

Functional API এর মাধ্যমে জটিল এবং মাল্টি-লেয়ার, মাল্টি-ইনপুট মডেল তৈরি করা সহজ এবং সঠিকভাবে মূল্যায়ন করা সম্ভব হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...